﻿package com.wy.project.controller;


import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.wy.project.entity.ProductApprovalInfo;
import com.wy.project.entity.ProductInfo;
import com.wy.project.entity.ProductInfoTerminalType;
import com.wy.project.entity.ProductMsg;
import com.wy.project.service.IProductInfoService;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.*;

import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 *
 * @author wysk
 * @since 2021-01-16
 */
@RestController
@RequestMapping("/project/product-info")
@CrossOrigin
public class ProductInfoController {

    @Resource
    private IProductInfoService productInfoService;


 //    @Value("${server.port}")
//    private String port;
//
//    /**
//     * .信息
//     */
//    @GetMapping("/m")
//    String m(HttpServletRequest request) {
//        return port+"\t...";
//    }

    /**
     * 产品基本信息存为草稿(创建)
     * @param productInfo 要保存的信息
     */
    @PostMapping("/save4Draft")
    public void save4Draft(@RequestBody ProductInfo productInfo){
        productInfoService.save4Draft(productInfo);
    }

    /**
     * 产品基本信息提交审核(创建)
     * @param productInfo 要提交审核的信息
     */
    @PostMapping("/save4Approval")
    public void save4Approval(@RequestBody ProductInfo productInfo){
        productInfoService.save4Approval(productInfo);
    }

    /**
     * 产品基本信息存为草稿(修改)
     * @param productInfo 要修改的信息
     */
    @PostMapping("/edit4Draft")
    public void edit4Draft(@RequestBody ProductInfo productInfo){
        productInfoService.edit4Draft(productInfo);
    }


    /**
     * 产品基本信息提交审核(修改)
     * @param productInfo 要提交审核的信息
     */
    @PostMapping("/edit4Approval")
    public void edit4Approval(@RequestBody ProductInfo productInfo){
        productInfoService.edit4Approval(productInfo);
    }

    /**
     * 产品基本信息审核通过
     * @param productApprovalInfo 审核记录
     */
    @PostMapping("/pass")
    public void  pass(@RequestBody ProductApprovalInfo productApprovalInfo){
        productInfoService.pass(productApprovalInfo);
    }

    /**
     * 产品基本信息审核不通过
     * @param productApprovalInfo 审核记录
     */
    @PostMapping("/notPass")
    public void  notPass(@RequestBody ProductApprovalInfo productApprovalInfo){
        productInfoService.notPass(productApprovalInfo);
    }



    /**
     * 产品基本信息再次审核
     * 审核失败之后,进行信息的修改,之后提交审核
     * @param productInfo 要审核的信息
     */
    @PostMapping("/revise")
    public void revise(@RequestBody ProductInfo productInfo){
        productInfoService.revise(productInfo);
    }


    /**
     * 产品基本信息发布
     * @param code 要发布的信息标识
     */
    @GetMapping("/publish/{code}")
    public void publish(@PathVariable String code){
        productInfoService.publish(code);
    }


    /**
     * 产品基本信息作废
     * @param code 要作废的信息标识
     */
    @GetMapping("/abort/{code}")
    public void abort(@PathVariable String code){
        productInfoService.abort(code);
    }









    /**
     * 产品基本信息分页查询
     * @param page 分页的参数
     * @return 分页信息
     */
    @PostMapping("/findPage")
    public Page<ProductInfo> findPage(@RequestBody Page<ProductInfo> page){
        return productInfoService.findPage(page);
    }


    /**
     * 产品基本信息分页查询
     * @param current 每页多少条
     * @param size 当前页
     * @return 分页信息
     */
    @PostMapping("/findPage/{current}/{size}")
    public Page<ProductInfo> findPage(@PathVariable Integer current,@PathVariable Integer size){
        return productInfoService.findPage(current, size);
    }


    /**
     * 产品基本信息查看详情
     * @param code 要查看的标识
     * @return 详情信息
     */
    @GetMapping("/detail/{code}")
    public ProductInfo detail(@PathVariable String code){
        return productInfoService.detail(code);
    }


    /**
     * 查询终端类型
     * @param code
     * @return  终端类型的集合
     */
    @GetMapping("/findProductInfoTerminalType/{code}")
    public List<ProductInfoTerminalType> findProductInfoTerminalType(@PathVariable String code){
        return productInfoService.findProductInfoTerminalType(code);
    }

    /**
     * 查看产品消息
     * @return 查询的信息
     */
    @GetMapping("/findProductMsg")
    public List<ProductMsg> findProductMsg(){
        return productInfoService.findProductMsg();
    }

}


